package cn.itcast.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Arrays;
import java.util.List;

/**
 * 套餐信息实体类
 * @author Shizhicong
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ComboInfo {
    /**
     * 套餐名称
     */
    private String name;

    /**
     * 月租费用（单位：元）
     */
    private double monthlyFee;

    /**
     * 流量（单位：GB，不限量用 "Unlimited" 表示）
     */
    private String dataVolume;

    /**
     * 通话时长（单位：分钟）
     */
    private int callDuration;

    /**
     * 附加服务描述
     */
    private String additionalServices;

    /**
     * 合约期（单位：个月）
     */
    private int contractPeriod;

    /**
     * 优惠活动描述
     */
    private String promotionActivity;


    /**
     * 获取所有套餐信息列表
     * @return 包含四个套餐的List
     */
    public static List<ComboInfo> getAllCombos() {
        return Arrays.asList(
                ComboInfo.builder()
                        .name("经济卡")
                        .monthlyFee(39)
                        .dataVolume("10GB")
                        .callDuration(100)
                        .additionalServices("无")
                        .contractPeriod(0)
                        .promotionActivity("首月半价")
                        .build(),

                ComboInfo.builder()
                        .name("畅享全家享")
                        .monthlyFee(99)
                        .dataVolume("50GB")
                        .callDuration(500)
                        .additionalServices("200M宽带+2张副卡")
                        .contractPeriod(12)
                        .promotionActivity("送视频会员月卡")
                        .build(),

                ComboInfo.builder()
                        .name("全球通尊享")
                        .monthlyFee(199)
                        .dataVolume("不限量")
                        .callDuration(2000)
                        .additionalServices("国际漫游+5G优先")
                        .contractPeriod(24)
                        .promotionActivity("机场贵宾厅2次/年")
                        .build(),

                ComboInfo.builder()
                        .name("学生青春卡")
                        .monthlyFee(59)
                        .dataVolume("30GB")
                        .callDuration(200)
                        .additionalServices("校园网加速")
                        .contractPeriod(6)
                        .promotionActivity("免流特定APP")
                        .build()
        );
    }
}
